<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>erase</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">C++ Strings</a> &gt; <a href="erase.html">erase</a>
  </div>

  <div class="name-format">
    erase
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;string&gt;
  iterator erase( iterator loc );
  iterator erase( iterator start, iterator end );
  string&amp; erase( <strong>size_type</strong> index = 0, <strong>size_type</strong> num = npos );
</pre>

  <p>The erase() function either:</p>

  <ul>
    <li>removes the character pointed to by <em>loc</em>, returning an
    iterator to the next character,</li>

    <li>removes the characters between <em>start</em> and <em>end</em>
    (including the one at <em>start</em> but not the one at
    <em>end</em>), returning an iterator to the character after the
    last character removed,</li>

    <li>or removes <em>num</em> characters from the current string,
    starting at <em>index</em>, and returns *this.</li>
  </ul>

  <p>The parameters <em>index</em> and <em>num</em> have default
  values, which means that erase() can be called with just
  <em>index</em> to erase all characters after <em>index</em> or with
  no arguments to erase all characters.</p>

  <p>For example:</p>
  <pre class="example-code">
   string s(&quot;So, you like donuts, eh? Well, have all the donuts in the world!&quot;);
   cout &lt;&lt; &quot;The original string is &#39;&quot; &lt;&lt; s &lt;&lt; &quot;&#39;&quot; &lt;&lt; endl;          

   s.erase( 50, 14 );
   cout &lt;&lt; &quot;Now the string is &#39;&quot; &lt;&lt; s &lt;&lt; &quot;&#39;&quot; &lt;&lt; endl;
   s.erase( 24 );
   cout &lt;&lt; &quot;Now the string is &#39;&quot; &lt;&lt; s &lt;&lt; &quot;&#39;&quot; &lt;&lt; endl;
   s.erase();
   cout &lt;&lt; &quot;Now the string is &#39;&quot; &lt;&lt; s &lt;&lt; &quot;&#39;&quot; &lt;&lt; endl;               
</pre>

  <p>will display</p>
  <pre class="example-code">
   The original string is &#39;So, you like donuts, eh? Well, have all the donuts in the world!&#39;
   Now the string is &#39;So, you like donuts, eh? Well, have all the donuts&#39;
   Now the string is &#39;So, you like donuts, eh?&#39;
   Now the string is &#39;&#39;         
</pre>

  <p>erase() runs in <a href="../complexity.html">linear time</a>.</p>

  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="insert.html">insert</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
